const express = require("express")
const router = express.Router()
// 控制层
let studentsController = require("../controllers/studentsController")

// router.use(function timeLog(req, res, next) {
//     console.log('Time: ', Date.now())
//     //模块路由中检测是否携带了 token
//     if (!req.auth) {
//         return res.send({
//             status: 403,
//             message: "缺少token"
//         });
//     }
//     next()
// })

// 需要安装的插件--类似表单验证
const { body, query } = require("express-validator")
// 引入中间件
const checkPermission = require('../middleware/checkPermission');
const auth = require('../middleware/auth');

// 字段约束：name,student_id,class_id,enrol_date,graduate_date,ed_sys,ed_bkg,call_ed_bkg,state,phone,egy_person,egy_phone,native_place,address,email
router.post("/add",
    [
        body('name').notEmpty().withMessage('姓名是必填项').trim().escape(),
        body('gender').notEmpty().withMessage('性别是必填项').trim().escape(),
        body('student_id').notEmpty().withMessage('学生ID是必填项').isLength({ min: 1 }).trim().escape(),
        body('class_id').notEmpty().withMessage('班级ID是必填项').isLength({ min: 1 }).trim().escape(),
        body('enrol_date').notEmpty().withMessage('入学日期是必填项').isDate().withMessage('入学日期必须是有效的日期'),
        body('graduate_date').optional().isDate().withMessage('毕业日期必须是有效的日期'),
        body('ed_sys').optional().isLength({ min: 1 }).trim().escape().withMessage('教育系统至少需要一个字符'),
        body('ed_bkg').optional().isLength({ min: 1 }).trim().escape().withMessage('教育背景至少需要一个字符'),
        body('call_ed_bkg').optional().isLength({ min: 1 }).trim().escape().withMessage('呼叫教育背景至少需要一个字符'),
        body('state').notEmpty().withMessage('状态是必填项').isLength({ min: 1 }).trim().escape(),
        body('phone').optional().isMobilePhone().withMessage('电话号码必须是有效的手机号码'),
        body('egy_person').optional().isLength({ min: 1 }).trim().escape().withMessage('紧急联系人至少需要一个字符'),
        body('egy_phone').optional().isMobilePhone().withMessage('紧急联系电话必须是有效的手机号码'),
        body('native_place').optional().isLength({ min: 1 }).trim().escape().withMessage('籍贯至少需要一个字符'),
        body('address').optional().isLength({ min: 1 }).trim().escape().withMessage('地址至少需要一个字符'),
        body('email').optional().isEmail().withMessage('邮箱必须是有效的邮箱地址')
    ], auth, checkPermission("student_add"),
    studentsController.addstudent)

router.get("/delete_f", auth, checkPermission("student_delete"), studentsController.delete_student_f_c)
router.get("/start", auth, checkPermission("student_delete"), studentsController.start)
router.get("/delete_t", auth, checkPermission("student_delete"), studentsController.delete_student_t_c)
router.get("/get", auth, checkPermission("student_list"), studentsController.student_view_c)

router.post("/set",
    [
        body('name').notEmpty().withMessage('姓名是必填项').trim().escape(),
        body('gender').notEmpty().withMessage('性别是必填项').trim().escape(),
        body('student_id').notEmpty().withMessage('学生ID是必填项').isLength({ min: 1 }).trim().escape(),
        body('class_id').notEmpty().withMessage('班级ID是必填项').isLength({ min: 1 }).trim().escape(),
        body('enrol_date').notEmpty().withMessage('入学日期是必填项').isDate().withMessage('入学日期必须是有效的日期'),
        body('graduate_date').optional().isDate().withMessage('毕业日期必须是有效的日期'),
        body('ed_sys').optional().isLength({ min: 1 }).trim().escape().withMessage('教育系统至少需要一个字符'),
        body('ed_bkg').optional().isLength({ min: 1 }).trim().escape().withMessage('教育背景至少需要一个字符'),
        body('call_ed_bkg').optional().isLength({ min: 1 }).trim().escape().withMessage('呼叫教育背景至少需要一个字符'),
        body('state').notEmpty().withMessage('状态是必填项').isLength({ min: 1 }).trim().escape(),
        body('phone').optional().isMobilePhone().withMessage('电话号码必须是有效的手机号码'),
        body('egy_person').optional().isLength({ min: 1 }).trim().escape().withMessage('紧急联系人至少需要一个字符'),
        body('egy_phone').optional().isMobilePhone().withMessage('紧急联系电话必须是有效的手机号码'),
        body('native_place').optional().isLength({ min: 1 }).trim().escape().withMessage('籍贯至少需要一个字符'),
        body('address').optional().isLength({ min: 1 }).trim().escape().withMessage('地址至少需要一个字符'),
        body('email').optional().isEmail().withMessage('邮箱必须是有效的邮箱地址')
    ], auth, checkPermission("student_edit"),
    studentsController.student_set_c)
router.get("/list_search", [
    query('page_size').optional().toInt(),
    query('page').optional().toInt()
], auth, checkPermission("student_list"),
    studentsController.student_list_c)
router.get("/total", auth, checkPermission("student_list"), studentsController.all_student_c)
router.get("/allclass", studentsController.all_class)
router.get("/allprogram", studentsController.all_program)
router.get("/pro_class", studentsController.pro_class)
router.get("/all_exams", studentsController.all_exams)
module.exports = router
